Medium
Related Topics: Array / Dynamic Programming / Greedy
LeetCode Source
應該算大部分人的解法,這題因為我有印象,所以有寫出來
但當時也是看別人解法 XD
主要是尋訪每一個 nums
裡頭的值
並透過 count
來判斷能否順利完成 Jump Game
int count = nums[0];
來初始化第一步
count = max(count - 1, nums[i]);
使用貪婪選先前 count-1
或是當下的值
結果判斷是透過 count
有沒有小於等於零
class Solution:
def canJump(self, nums: List[int]) -> bool:
count = nums[0]
for i in range(1, len(nums)):
if count <= 0:
return False
count = max(count - 1, nums[i])
return True
class Solution {
public:
bool canJump(vector<int>& nums) {
int count = nums[0];
for (int i = 1; i < nums.size(); i++) {
if (count <= 0)
return false;
count = max(count - 1, nums[i]);
}
return true;
}
};